この項では、ネットワーク上でTimesTenデータをレプリケートする場合に考慮する必要があるいくつかの問題について説明します。内容は次のとおりです。
TimesTenレプリケーションに必要なネットワーク帯域幅は、レプリケートしているデータの量および頻度によって異なります。ここでは、データ範囲の上位と下位、およびTimesTenデータ・ストア間でデータをレプリケートするために必要なネットワーク帯域幅を特徴付けるトランザクションのタイプについて説明します。
データ範囲の上位は、小量のデータの更新または挿入で特徴付けることができます。これらの更新または挿入では、約1.5から1.6MB/秒でデータをレプリケートできます。データ範囲の下位は、RETURN RECEIPTを指定して実行中の単一のchar(10)列更新で特徴付けることができます。この更新では、約125KB/秒でデータをレプリケートできます。
次の表に、レプリケート・レコードのサイズを計算するためのガイドラインを示します。
レコード・タイプ
|
サイズ
|
---|---|
開始トランザクション | 48バイト |
伝播 | 48バイト |
更新 | 116バイト + 18バイト/更新された列 +古い列のサイズ +新しい列のサイズ +主キーまたは一意キーのサイズ |
削除 | 104バイト +主キーまたは一意キーのサイズ |
挿入 | 104バイト +主キーまたは一意キーのサイズ +挿入された行のサイズ |
終了トランザクション | 48バイト |
トランザクションはレプリケート対象のデータ・ストア間をバッチで送信されます。マスター・データ・ストアのトランザクション・ログ・バッファにデータがなくなった場合、または現在のバッチがほぼ256Kバイトである場合にバッチが作成されます。各バッチの最後に、マスターは48バイトのバッチ終了メッセージを送信し、バッチ受信時にサブスクライバから送信される48バイトの確認応答を待機します。詳細は、「レプリケーション・エージェントによって更新をデータ・ストア間でコピーする方法」を参照してください。
次の表に示すとおり、LANで通常使用される100 Base-Tイーサネットでは、10MB/秒の速度を持続できます。これは、ほとんどのレプリケーションで必要とされる速度に十分対応できる持続帯域幅です。ただし、サーバーがWANで通信している場合、レプリケーション・スキームおよびトランザクション・ロードの設定は、ネットワークの使用可能帯域幅に一致させる必要があります。
前述の表のとおり、T3回線では、4.8MB/秒の使用可能帯域幅によって、パフォーマンスを損なうことなく、実行可能な最速のトランザクション速度(合計で3.2MB/秒)で稼働する2つのサブスクライバを十分にサポートできる帯域幅が提供されます。
対照的に、T1回線では、行に1KB未満を挿入するユーザーのRETURN RECEIPTレプリケーションに十分対応できる帯域幅が提供されます。
TimesTenレプリケーションでは、TCP/IPプロトコルを使用していますが、このプロトコルはWAN環境用には最適化されていません。WANでのレプリケーションのパフォーマンスは、サードパーティのTCPスタック製品を使用して向上できます。TCPスタックの交換を実行できない場合は、CREATE REPLICATION文にCOMPRESS TRAFFIC属性を設定して、TCP/IPプロトコルで処理する必要があるネットワーク通信量を削減します。詳細は、「レプリケートの通信量の圧縮」を参照してください。
ほとんどのレプリケーション・スキームで、データ・ストアが存在するホスト・マシンの名前を指定する必要があります。オペレーティング・システムは、このホスト名をIPアドレスに変換します。この項では、正しいIPアドレスが使用されるようにホスト名を設定する方法について説明します。
UNIXホストが1つのIPアドレスおよびホスト名を持っている場合は、hostnameコマンドによって返されるホスト名を使用できます。
1つのホストに(異なるIPアドレスを持つ)複数のネットワーク・インタフェースがある場合、TimesTenレプリケーションは、gethostbynameコールによって返される順序でIPアドレスに接続を試行します。最初のアドレスを使用して接続を試行し、接続できない場合は、接続が確立するまで、順番に残りのアドレスに接続を試行します。TimesTenレプリケーションは、ホストに新しく接続するたびにこの同じ順序を使用します。あるIPアドレスでホストへの接続が失敗すると、TimesTenレプリケーションは、前述の方法と同じ方法でホストの別のIPアドレスに再接続(またはフォールバック)を試行します。
UNIX Platformsで複数のIPアドレスを使用するようにホストを設定するには、基本的にDNSまたは/etc/hostsファイルを使用する2つの方法があります。
たとえば、マシンに2つのNICがある場合は、/etc/hostsファイルに対して次の構文を使用します。
127.0.0.1 localhost <IP addr 1 for NIC 1> <official hostname> <alias name> <IP addr 2 for NIC 2> <official hostname> <alias name>official hostnameは、hostnameコマンドによって返されたホスト名です。
/etc/hostsファイルを編集する場合は、次のことに注意してください。
たとえば、UNIX Platformにある/etc/hostsファイル内の次のエントリは、名前がMachine1で2つのIPアドレスを持つサーバーについて記述しています。
127.0.0.1 localhost 10.10.98.102 Machine1 192.168.1.102 Machine1DNSに対して同じ設定を指定する場合、ドメイン・ゾーン・ファイルのエントリは次のようになります。
Machine1 IN A 10.10.98.102 IN A 192.168.1.102いずれの場合も、レプリケーション・スキームにホスト名としてMachine1を指定する必要のみがあります。レプリケーションでは、接続の確立時に使用可能なIPアドレスが使用されます。
また、複数のIPアドレスが使用されている環境では、1つのIPアドレスに複数のホスト名を割り当てて特定のIPアドレスへのレプリケーション接続を制限することもできます。たとえば、/etc/hostsファイルに次のようなエントリを含めることができます。
127.0.0.1 localhost 10.10.98.102 Machine1 192.168.1.102 Machine1 RepMachine1また、次のようなDNSゾーン・ファイルを含めることもできます。
Machine1 IN A 10.10.98.102 IN A 192.168.1.102 RepMachine1 IN A 192.168.1.102このホストのIPアドレス192.168.1.102へのレプリケーション接続を制限する場合は、レプリケーション・スキームにホスト名としてRepMachine1を指定できます。(もう1つのオプションとして、レプリケーション・スキームの設定に使用するCREATE REPLICATION文にホスト名としてIPアドレスを指定する方法があります。)
デフォルトでは、TimesTenのメイン・デーモン、すべてのサブデーモンおよびエージェントは、使用可能なアドレスを使用してソケット上でリクエストをリスニングします。-listenaddrオプションを含めることで、ttendaemon.optionsファイルを変更してエージェントとデーモン間の通信用のアドレスを指定できます。詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデーモン・オプションの管理に関する項を参照してください。
マシンに2つのNICがあり、NICのアドレスがそれぞれ10.10.10.100と10.10.11.200であるとします。ループバック・アドレスは127.0.0.1です。ループバック・アドレスをレプリケーション・エージェントに適用する場合は次のことに注意してください。
レプリケーション設定では、ピアのホスト名をIPアドレスに変換できる必要があります。Windowsでこれを効率的に行うには、有効なWINSサーバーまたは有効なDNSサーバーのいずれかを問い合せるように各Windowsマシンが設定されていることを確認してください。これらのサーバーにはネットワーク上のホストに関する正しい情報があります。このようなサーバーがない場合、次のいずれかの方法で静的なHOST-to-IPエントリを入力できます。
%windir%\system32\drivers\etc\hostsまたは
%windir%\system32\drivers\etc\lmhostsこれらの4つのオプションを指定しなかった場合、Windowsマシンはブロードキャスト(非常に低速)を実行してピア・ノードを検出します。
また、Windowsマシンで定義済のWINSサーバーまたはDNSサーバーと通信できない場合、またはホスト名の解決がこれらのサーバーで正しく設定されていない場合は、ホスト名の解決に非常に時間がかかる場合があります。pingコマンドを使用して、ホストを効率的に検出できるかどうかをテストします。pingコマンドのレスポンスは、ホスト名の解決が適切に設定されている場合はすぐに返されます。
Windowsでの\etc\hostsのホスト名の解決設定の問題は、UNIXでの/etc/hostsの問題(「UNIX上のデータ・ストア・ホストの指定」を参照)と同じです。
ホスト名の長さは、最大30文字にできます。